[INFO] fetching crate mcp-guard 1.0.0...
[INFO] testing mcp-guard-1.0.0 against try#b8e88e5ddf5521a9f43ee3f62a702388c713e4bb for pr-155114
[INFO] extracting crate mcp-guard 1.0.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate mcp-guard 1.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate mcp-guard 1.0.0
[INFO] tweaked toml for crates.io crate mcp-guard 1.0.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mcp-guard 1.0.0 on toolchain b8e88e5ddf5521a9f43ee3f62a702388c713e4bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate mcp-guard 1.0.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f34deebb8cb02472f79298f62843759c5999d3006a1b1b8993dceabb9abf8e1b
[INFO] running `Command { std: "docker" "start" "-a" "f34deebb8cb02472f79298f62843759c5999d3006a1b1b8993dceabb9abf8e1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f34deebb8cb02472f79298f62843759c5999d3006a1b1b8993dceabb9abf8e1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f34deebb8cb02472f79298f62843759c5999d3006a1b1b8993dceabb9abf8e1b", kill_on_drop: false }`
[INFO] [stdout] f34deebb8cb02472f79298f62843759c5999d3006a1b1b8993dceabb9abf8e1b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 463c0db06fe5459867e14f505b9e4eb1f62e20154e151d8eaa23599e012a08cc
[INFO] running `Command { std: "docker" "start" "-a" "463c0db06fe5459867e14f505b9e4eb1f62e20154e151d8eaa23599e012a08cc", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling tracing-core v0.1.35
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling cc v1.2.49
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling aws-lc-rs v1.15.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling rustls-pki-types v1.13.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling cmake v0.1.56
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling aws-lc-sys v0.34.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling pest v2.8.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling rustls-native-certs v0.8.2
[INFO] [stderr]    Compiling pest_meta v2.8.4
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling webpki-roots v1.0.4
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling tracing v0.1.43
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling opentelemetry v0.27.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling opentelemetry_sdk v0.27.1
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling pest_generator v2.8.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling dlv-list v0.5.2
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling iri-string v0.7.9
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling pest_derive v2.8.4
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling metrics v0.23.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling arraydeque v0.5.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling sketches-ddsketch v0.2.2
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling yaml-rust2 v0.8.1
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling metrics-util v0.17.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling simple_asn1 v0.6.3
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling rust-ini v0.20.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling pathdiff v0.2.3
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling no-std-compat v0.4.1
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling config v0.14.1
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling flate2 v1.1.5
[INFO] [stderr]    Compiling governor v0.6.3
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling tracing-opentelemetry v0.28.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling opentelemetry-proto v0.27.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.27.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.8
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.25
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.15.3
[INFO] [stderr]    Compiling oauth2 v5.0.0
[INFO] [stderr]    Compiling mcp-guard-core v1.0.0
[INFO] [stderr]    Compiling mcp-guard v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]    --> src/main.rs:653:11
[INFO] [stdout]     |
[INFO] [stdout] 653 |     #[cfg(feature = "pro")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stdout]    --> src/main.rs:704:11
[INFO] [stdout]     |
[INFO] [stdout] 704 |     #[cfg(feature = "enterprise")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 27s
[INFO] running `Command { std: "docker" "inspect" "463c0db06fe5459867e14f505b9e4eb1f62e20154e151d8eaa23599e012a08cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "463c0db06fe5459867e14f505b9e4eb1f62e20154e151d8eaa23599e012a08cc", kill_on_drop: false }`
[INFO] [stdout] 463c0db06fe5459867e14f505b9e4eb1f62e20154e151d8eaa23599e012a08cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5caa6aca56a70f66acefc01868f4bf90b91d053e8fb4c01476ed2c90d0294df9
[INFO] running `Command { std: "docker" "start" "-a" "5caa6aca56a70f66acefc01868f4bf90b91d053e8fb4c01476ed2c90d0294df9", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling assert_cmd v2.1.1
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling config v0.14.1
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling metrics-util v0.17.0
[INFO] [stderr]    Compiling governor v0.6.3
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling opentelemetry_sdk v0.27.1
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling tracing-opentelemetry v0.28.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.25
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.15.3
[INFO] [stderr]    Compiling oauth2 v5.0.0
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling opentelemetry-proto v0.27.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.27.0
[INFO] [stderr]    Compiling mcp-guard-core v1.0.0
[INFO] [stderr]    Compiling mcp-guard v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/e2e_cli_tests.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Command::cargo_bin("mcp-guard").unwrap()
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stdout]  --> tests/routing_tests.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![cfg(feature = "enterprise")]
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`
[INFO] [stdout]   = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/server_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> tests/server_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_free_port` is never used
[INFO] [stdout]   --> tests/common/mod.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn get_free_port() -> u16 {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_for_server` is never used
[INFO] [stdout]   --> tests/common/mod.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub async fn wait_for_server(port: u16) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cargo_bin` is never used
[INFO] [stdout]   --> tests/common/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]    --> src/main.rs:653:11
[INFO] [stdout]     |
[INFO] [stdout] 653 |     #[cfg(feature = "pro")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stdout]    --> src/main.rs:704:11
[INFO] [stdout]     |
[INFO] [stdout] 704 |     #[cfg(feature = "enterprise")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]    --> src/main.rs:653:11
[INFO] [stdout]     |
[INFO] [stdout] 653 |     #[cfg(feature = "pro")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stdout]    --> src/main.rs:704:11
[INFO] [stdout]     |
[INFO] [stdout] 704 |     #[cfg(feature = "enterprise")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]     --> src/main.rs:1146:11
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     #[cfg(feature = "pro")]
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected values for `feature` are: `default`
[INFO] [stdout]      = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stdout]     --> src/main.rs:1384:11
[INFO] [stdout]      |
[INFO] [stdout] 1384 |     #[cfg(feature = "enterprise")]
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected values for `feature` are: `default`
[INFO] [stdout]      = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]     --> src/main.rs:1413:15
[INFO] [stdout]      |
[INFO] [stdout] 1413 |     #[cfg(not(feature = "pro"))]
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected values for `feature` are: `default`
[INFO] [stdout]      = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stdout]     --> src/main.rs:1439:15
[INFO] [stdout]      |
[INFO] [stdout] 1439 |     #[cfg(not(feature = "enterprise"))]
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected values for `feature` are: `default`
[INFO] [stdout]      = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]    --> tests/cli_tests.rs:129:7
[INFO] [stdout]     |
[INFO] [stdout] 129 | #[cfg(feature = "pro")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]    --> tests/cli_tests.rs:171:7
[INFO] [stdout]     |
[INFO] [stdout] 171 | #[cfg(feature = "pro")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `pro`
[INFO] [stdout]    --> tests/cli_tests.rs:204:11
[INFO] [stdout]     |
[INFO] [stdout] 204 | #[cfg(not(feature = "pro"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_cmd::Command`
[INFO] [stdout]  --> tests/cli_tests.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use assert_cmd::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_free_port` is never used
[INFO] [stdout]   --> tests/common/mod.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn get_free_port() -> u16 {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_for_server` is never used
[INFO] [stdout]   --> tests/common/mod.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub async fn wait_for_server(port: u16) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_config_http` is never used
[INFO] [stdout]     --> src/main.rs:1005:8
[INFO] [stdout]      |
[INFO] [stdout] 1005 |     fn create_test_config_http(url: &str) -> Config {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/http_server_tests.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> tests/common/mod.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> tests/common/mod.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `config_with_multiple_keys` is never used
[INFO] [stdout]   --> tests/http_server_tests.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn config_with_multiple_keys() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContext` is never constructed
[INFO] [stdout]  --> tests/common/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TestContext {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_context` is never used
[INFO] [stdout]   --> tests/common/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 45s
[INFO] running `Command { std: "docker" "inspect" "5caa6aca56a70f66acefc01868f4bf90b91d053e8fb4c01476ed2c90d0294df9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5caa6aca56a70f66acefc01868f4bf90b91d053e8fb4c01476ed2c90d0294df9", kill_on_drop: false }`
[INFO] [stdout] 5caa6aca56a70f66acefc01868f4bf90b91d053e8fb4c01476ed2c90d0294df9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d28fa647af0d262e8106b0d96295dfe6b3710d1adbb5c7cf2c1dcdf9a7fe126b
[INFO] running `Command { std: "docker" "start" "-a" "d28fa647af0d262e8106b0d96295dfe6b3710d1adbb5c7cf2c1dcdf9a7fe126b", kill_on_drop: false }`
[INFO] [stderr] warning: unexpected `cfg` condition value: `pro`
[INFO] [stderr]    --> src/main.rs:653:11
[INFO] [stderr]     |
[INFO] [stderr] 653 |     #[cfg(feature = "pro")]
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected values for `feature` are: `default`
[INFO] [stderr]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stderr]    --> src/main.rs:704:11
[INFO] [stderr]     |
[INFO] [stderr] 704 |     #[cfg(feature = "enterprise")]
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected values for `feature` are: `default`
[INFO] [stderr]     = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: `mcp-guard` (bin "mcp-guard") generated 2 warnings
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/http_server_tests.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Stdio`
[INFO] [stderr]  --> tests/common/mod.rs:2:29
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::process::{Command, Stdio};
[INFO] [stderr]   |                             ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> tests/common/mod.rs:37:18
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stderr]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `config_with_multiple_keys` is never used
[INFO] [stderr]   --> tests/http_server_tests.rs:78:4
[INFO] [stderr]    |
[INFO] [stderr] 78 | fn config_with_multiple_keys() -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TestContext` is never constructed
[INFO] [stderr]  --> tests/common/mod.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct TestContext {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup_test_context` is never used
[INFO] [stderr]   --> tests/common/mod.rs:11:14
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub async fn setup_test_context() -> TestContext {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Stdio`
[INFO] [stderr]  --> tests/common/mod.rs:2:29
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::process::{Command, Stdio};
[INFO] [stderr]   |                             ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TestContext` is never constructed
[INFO] [stderr]  --> tests/common/mod.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct TestContext {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_free_port` is never used
[INFO] [stderr]   --> tests/common/mod.rs:21:14
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub async fn get_free_port() -> u16 {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `wait_for_server` is never used
[INFO] [stderr]   --> tests/common/mod.rs:26:14
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub async fn wait_for_server(port: u16) -> bool {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cargo_bin` is never used
[INFO] [stderr]   --> tests/common/mod.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn cargo_bin(name: &str) -> Command {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/server_tests.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::time::sleep`
[INFO] [stderr]  --> tests/server_tests.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use tokio::time::sleep;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `pro`
[INFO] [stderr]     --> src/main.rs:1146:11
[INFO] [stderr]      |
[INFO] [stderr] 1146 |     #[cfg(feature = "pro")]
[INFO] [stderr]      |           ^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: expected values for `feature` are: `default`
[INFO] [stderr]      = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stderr]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stderr]     --> src/main.rs:1384:11
[INFO] [stderr]      |
[INFO] [stderr] 1384 |     #[cfg(feature = "enterprise")]
[INFO] [stderr]      |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: expected values for `feature` are: `default`
[INFO] [stderr]      = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stderr]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `pro`
[INFO] [stderr]     --> src/main.rs:1413:15
[INFO] [stderr]      |
[INFO] [stderr] 1413 |     #[cfg(not(feature = "pro"))]
[INFO] [stderr]      |               ^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: expected values for `feature` are: `default`
[INFO] [stderr]      = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stderr]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stderr]     --> src/main.rs:1439:15
[INFO] [stderr]      |
[INFO] [stderr] 1439 |     #[cfg(not(feature = "enterprise"))]
[INFO] [stderr]      |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: expected values for `feature` are: `default`
[INFO] [stderr]      = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stderr]      = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_config_http` is never used
[INFO] [stderr]     --> src/main.rs:1005:8
[INFO] [stderr]      |
[INFO] [stderr] 1005 |     fn create_test_config_http(url: &str) -> Config {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `pro`
[INFO] [stderr]    --> tests/cli_tests.rs:129:7
[INFO] [stderr]     |
[INFO] [stderr] 129 | #[cfg(feature = "pro")]
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected values for `feature` are: `default`
[INFO] [stderr]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `pro`
[INFO] [stderr]    --> tests/cli_tests.rs:171:7
[INFO] [stderr]     |
[INFO] [stderr] 171 | #[cfg(feature = "pro")]
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected values for `feature` are: `default`
[INFO] [stderr]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `pro`
[INFO] [stderr]    --> tests/cli_tests.rs:204:11
[INFO] [stderr]     |
[INFO] [stderr] 204 | #[cfg(not(feature = "pro"))]
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected values for `feature` are: `default`
[INFO] [stderr]     = help: consider adding `pro` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assert_cmd::Command`
[INFO] [stderr]  --> tests/cli_tests.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use assert_cmd::Command;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `mcp-guard` (test "http_server_tests") generated 6 warnings (run `cargo fix --test "http_server_tests" -p mcp-guard` to apply 3 suggestions)
[INFO] [stderr] warning: `mcp-guard` (test "transport_integration_tests") generated 7 warnings (2 duplicates) (run `cargo fix --test "transport_integration_tests" -p mcp-guard` to apply 1 suggestion)
[INFO] [stderr] warning: `mcp-guard` (test "mcp_handler_tests") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `mcp-guard` (test "rate_limit_tests") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `mcp-guard` (test "server_tests") generated 6 warnings (4 duplicates) (run `cargo fix --test "server_tests" -p mcp-guard` to apply 2 suggestions)
[INFO] [stderr] warning: `mcp-guard` (bin "mcp-guard" test) generated 7 warnings (2 duplicates)
[INFO] [stderr] warning: `mcp-guard` (test "cli_tests") generated 10 warnings (6 duplicates) (run `cargo fix --test "cli_tests" -p mcp-guard` to apply 1 suggestion)
[INFO] [stderr] warning: `mcp-guard` (test "auth_integration_tests") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/e2e_cli_tests.rs:12:14
[INFO] [stderr]    |
[INFO] [stderr] 12 |     Command::cargo_bin("mcp-guard").unwrap()
[INFO] [stderr]    |              ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `enterprise`
[INFO] [stderr]  --> tests/routing_tests.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | #![cfg(feature = "enterprise")]
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected values for `feature` are: `default`
[INFO] [stderr]   = help: consider adding `enterprise` as a feature in `Cargo.toml`
[INFO] [stderr]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `mcp-guard` (test "e2e_cli_tests") generated 1 warning
[INFO] [stderr] warning: `mcp-guard` (test "routing_tests") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.60s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mcp_guard-e76821502c891255)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test tests::test_bootstrap_invalid_config ... ok
[INFO] [stdout] test tests::test_check_http_upstream_server_error ... ok
[INFO] [stdout] test tests::test_generate_config_toml ... ok
[INFO] [stdout] test tests::test_generate_config_yaml ... ok
[INFO] [stdout] test tests::test_bootstrap_with_no_auth ... ok
[INFO] [stdout] test tests::test_run_cli_hash_key ... ok
[INFO] [stdout] test tests::test_run_cli_keygen ... ok
[INFO] [stdout] test tests::test_run_cli_check_upstream_missing_config ... ok
[INFO] [stdout] test tests::test_bootstrap_with_multiple_auth_providers ... ok
[INFO] [stdout] test tests::test_run_cli_validate_missing_config ... ok
[INFO] [stdout] test tests::test_run_cli_keygen_no_extras ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.288422Z[0m [33m WARN[0m [2mmcp_guard_core::observability[0m[2m:[0m Failed to install global Prometheus recorder, using local recorder. Metrics will still be available but won't be globally accessible. [3merror[0m[2m=[0mfailed to install exporter as global recorder: attempted to set a recorder after the metrics system was already initialized
[INFO] [stdout] [2m2026-05-05T21:29:57.290868Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.290967Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/bin/echo
[INFO] [stdout] test tests::test_run_cli_validate_valid_config ... ok
[INFO] [stdout] test tests::test_check_sse_upstream_no_content_type ... ok
[INFO] [stdout] test tests::test_check_http_upstream_success ... ok
[INFO] [stdout] test tests::test_check_sse_upstream_success ... ok
[INFO] [stdout] test tests::test_tier_validation_http_requires_pro ... ok
[INFO] [stdout] test tests::test_tier_validation_stdio_always_allowed ... ok
[INFO] [stdout] test tests::test_tier_validation_multi_server_requires_enterprise ... ok
[INFO] [stdout] test tests::test_bootstrap_with_api_key_auth ... ok
[INFO] [stdout] test tests::test_run_cli_version ... ok
[INFO] [stdout] test tests::test_check_stdio_upstream_invalid_command ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth_integration_tests.rs (/opt/rustwide/target/debug/deps/auth_integration_tests-6b5670ec13b14e82)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] [2m2026-05-05T21:29:57.355680Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling JWT authentication
[INFO] [stdout] [2m2026-05-05T21:29:57.356070Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36861
[INFO] [stdout] ✓ Auth:       JWT
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 25 req/s, burst 10
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36861/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.357365Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36861
[INFO] [stdout] [2m2026-05-05T21:29:57.360612Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.360918Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36107
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 25 req/s, burst 10
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36107/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.362561Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36107
[INFO] [stdout] [2m2026-05-05T21:29:57.368942Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.369497Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.369926Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.370699Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.373262Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.373756Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.374549Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed [3merror_id[0m[2m=[0m29a0581b-a4dc-4e52-93dc-ecfe12e76e55 [3merror[0m[2m=[0mMissing authorization header
[INFO] [stdout] [2m2026-05-05T21:29:57.374771Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m401
[INFO] [stdout] [2m2026-05-05T21:29:57.375629Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.376585Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed (detailed) [3merror[0m[2m=[0mInvalid API key
[INFO] [stdout] [2m2026-05-05T21:29:57.376192Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.380108Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed [3merror_id[0m[2m=[0m91f1cb97-910c-4fbd-913d-b628177a44ed [3merror[0m[2m=[0mInvalid API key
[INFO] [stdout] [2m2026-05-05T21:29:57.380357Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m401
[INFO] [stdout] test test_api_key_auth_failures ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.381856Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.384900Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed (detailed) [3merror[0m[2m=[0mInvalid JWT: JWT validation failed: InvalidSignature
[INFO] [stdout] [2m2026-05-05T21:29:57.386017Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed [3merror_id[0m[2m=[0m44b5b485-cb9f-4d7e-9e53-a6960ac9e5f6 [3merror[0m[2m=[0mInvalid or malformed token
[INFO] [stdout] [2m2026-05-05T21:29:57.386272Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m401
[INFO] [stdout] test test_jwt_auth_hs256 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_tests.rs (/opt/rustwide/target/debug/deps/cli_tests-9cf7b2142e00cf5e)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_keygen ... ok
[INFO] [stdout] test test_validate_invalid_config ... ok
[INFO] [stdout] test test_check_upstream_http_requires_pro ... ok
[INFO] [stdout] test test_validate_valid_config ... ok
[INFO] [stdout] test test_init_creates_config ... ok
[INFO] [stdout] test test_init_fails_if_exists_without_force ... ok
[INFO] [stdout] test test_version ... ok
[INFO] [stdout] test test_hash_key ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_cli_tests.rs (/opt/rustwide/target/debug/deps/e2e_cli_tests-331140999c0823b3)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test test_check_upstream_http_invalid_url ... ok
[INFO] [stdout] test test_check_upstream_stdio_command_not_found ... ok
[INFO] [stdout] test test_check_upstream_missing_config ... ok
[INFO] [stdout] test test_check_upstream_sse_invalid_url ... ok
[INFO] [stdout] test test_hash_key_basic ... ok
[INFO] [stdout] test test_help_command ... ok
[INFO] [stdout] test test_init_force_overwrites ... ok
[INFO] [stdout] test test_keygen_basic ... ok
[INFO] [stdout] test test_init_creates_toml ... ok
[INFO] [stdout] test test_init_creates_yaml ... ok
[INFO] [stdout] test test_hash_key_different_inputs ... ok
[INFO] [stdout] test test_init_fails_if_exists_without_force ... ok
[INFO] [stdout] test test_hash_key_consistent ... ok
[INFO] [stdout] test test_keygen_full_options ... ok
[INFO] [stdout] test test_run_invalid_config ... ok
[INFO] [stdout] test test_keygen_with_rate_limit ... ok
[INFO] [stdout] test test_keygen_help ... ok
[INFO] [stdout] test test_keygen_with_tools ... ok
[INFO] [stdout] test test_run_help ... ok
[INFO] [stdout] test test_validate_invalid_config ... ok
[INFO] [stdout] test test_validate_valid_config ... ok
[INFO] [stdout] test test_verbose_flag_validate ... ok
[INFO] [stdout] test test_validate_missing_config ... ok
[INFO] [stdout] test test_run_missing_config ... ok
[INFO] [stdout] test test_validate_incomplete_config ... ok
[INFO] [stdout] test test_version_command ... ok
[INFO] [stdout] test test_version_shows_features ... ok
[INFO] [stderr]      Running tests/http_server_tests.rs (/opt/rustwide/target/debug/deps/http_server_tests-967ad51e5b3d1d63)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] [2m2026-05-05T21:29:57.539255Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.539624Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:45155
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:45155/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.540725Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:45155
[INFO] [stdout] [2m2026-05-05T21:29:57.542486Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.542764Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:35467
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:35467/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.543778Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:35467
[INFO] [stdout] [2m2026-05-05T21:29:57.544098Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.544274Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.545406Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:43129
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 25 req/s, burst 10
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:43129/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.545750Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:43129
[INFO] [stdout] [2m2026-05-05T21:29:57.546031Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.546423Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m CORS enabled with 1 allowed origins
[INFO] [stdout] [2m2026-05-05T21:29:57.546492Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.546573Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.546693Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.546827Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.547083Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42821
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42821/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.547437Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42821
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42419
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42419/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.547682Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42419
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:38949
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:38949/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.547941Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:38949
[INFO] [stdout] [2m2026-05-05T21:29:57.549022Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.551982Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.552204Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:37665
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:37665/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.556969Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:37665
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36367
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36367/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.559672Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36367
[INFO] [stdout] [2m2026-05-05T21:29:57.636343Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.636427Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.636454Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.636943Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.636968Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.637358Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.637908Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.638275Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.638294Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.638522Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.638806Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.639227Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mOPTIONS [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.639219Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.639689Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.639881Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mOPTIONS [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.640122Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_health_no_auth_required ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.640632Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.640757Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.641029Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.641032Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.641352Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_cors_headers_present ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.641636Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.641788Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_health_endpoint_returns_json ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.643756Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_mcp_accepts_application_json ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.647799Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/live [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.648124Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/live [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_live_endpoint_returns_minimal_response ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.650812Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.651106Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.651277Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.651487Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:38571
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:38571/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.651679Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:38571
[INFO] [stdout] [2m2026-05-05T21:29:57.652087Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:41385
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:41385/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.652680Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:41385
[INFO] [stdout] [2m2026-05-05T21:29:57.653596Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.654100Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.654753Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.655225Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.656103Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.656982Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.657344Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.657550Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.657536Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.657643Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.657851Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:45407
[INFO] [stdout] [2m2026-05-05T21:29:57.657900Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:45407/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.658021Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:45407
[INFO] [stdout] [2m2026-05-05T21:29:57.658458Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.659685Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.659843Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/unknown/route [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.660025Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.660331Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.660442Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/unknown/route [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m404
[INFO] [stdout] [2m2026-05-05T21:29:57.663883Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.664179Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.664718Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.664999Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.665277Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.666172Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:46087
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:46087/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.666644Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.666707Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:46087
[INFO] [stdout] [2m2026-05-05T21:29:57.666994Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.667184Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.667608Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.667847Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.668042Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_404_for_unknown_routes ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.668386Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.666443Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.671287Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_handles_concurrent_mcp_requests ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.671829Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.672119Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_handles_concurrent_requests ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.683238Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.683853Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.684055Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.685631Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.686683Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.686859Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.686942Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.687199Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:43227
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:43227/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.687863Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:43227
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:35751
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:35751/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.688689Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:35751
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:41895
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:41895/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.699108Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:41895
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:34015
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:34015/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.699790Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:34015
[INFO] [stdout] [2m2026-05-05T21:29:57.745789Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.746381Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.746386Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.746814Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.748248Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.749626Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_mcp_echoes_json_rpc_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.754021Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.755187Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.756517Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.760790Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.761028Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42393
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42393/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.761755Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42393
[INFO] [stdout] [2m2026-05-05T21:29:57.761927Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.764616Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m10 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.765330Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.766501Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.766510Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.766922Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed (detailed) [3merror[0m[2m=[0mInvalid API key
[INFO] [stdout] [2m2026-05-05T21:29:57.767033Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed [3merror_id[0m[2m=[0mf3b239de-3b46-436c-993f-7fa916486031 [3merror[0m[2m=[0mInvalid API key
[INFO] [stdout] [2m2026-05-05T21:29:57.767292Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m401
[INFO] [stdout] [2m2026-05-05T21:29:57.769147Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.777425Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.777677Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.778034Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.778075Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.778773Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.779141Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.779730Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.779786Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.779938Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed [3merror_id[0m[2m=[0mdd302bb0-57a4-4198-b948-cee113e42ab1 [3merror[0m[2m=[0mMissing authorization header
[INFO] [stdout] [2m2026-05-05T21:29:57.780140Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m401
[INFO] [stdout] [2m2026-05-05T21:29:57.780447Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m400
[INFO] [stdout] test test_mcp_rejects_invalid_api_key ... ok
[INFO] [stdout] test test_mcp_rejects_malformed_authorization_header ... ok
[INFO] [stdout] test test_mcp_rejects_invalid_json ... ok
[INFO] [stdout] test test_mcp_accepts_valid_api_key ... ok
[INFO] [stdout] test test_mcp_accepts_json_with_charset ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.793920Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.794143Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:41247
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:41247/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.794742Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:41247
[INFO] [stdout] [2m2026-05-05T21:29:57.803787Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.805062Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.807920Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.810516Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.811296Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_mcp_handles_tools_call_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.813028Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.813320Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.814284Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:37571
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:37571/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.814634Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:37571
[INFO] [stdout] [2m2026-05-05T21:29:57.816795Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.816973Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:35513
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:35513/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.818252Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:35513
[INFO] [stdout] [2m2026-05-05T21:29:57.819859Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authentication failed [3merror_id[0m[2m=[0m9ba38397-a054-4873-b9b2-c7fe03001be1 [3merror[0m[2m=[0mMissing authorization header
[INFO] [stdout] [2m2026-05-05T21:29:57.820486Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.820750Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m9 ms [3mstatus[0m[2m=[0m401
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:33015
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:33015/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.821104Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:33015
[INFO] [stdout] test test_mcp_requires_authentication ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.855006Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.855597Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.857340Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.858084Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m400
[INFO] [stdout] test test_mcp_returns_json_error_response ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.891205Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.897024Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.898788Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.899225Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.900913Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/ready [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.901362Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/ready [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.902718Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.903075Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_ready_endpoint_returns_ready_when_initialized ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.906228Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.907198Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.907668Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.908650Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.908817Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.909219Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.909351Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.910840Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.913328Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_metrics_endpoint_returns_prometheus_format ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.915797Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.916721Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.920816Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m405
[INFO] [stdout] [2m2026-05-05T21:29:57.921374Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.922091Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_method_not_allowed_for_wrong_http_method ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.924644Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.924990Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.925865Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.927211Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stderr]      Running tests/mcp_handler_tests.rs (/opt/rustwide/target/debug/deps/mcp_handler_tests-63d5a3b7b91caadb)
[INFO] [stdout] test test_metrics_updates_after_requests ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] [2m2026-05-05T21:29:57.963180Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.963189Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.963505Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.963527Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:33521
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:33521/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.964274Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:33521
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:41937
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:41937/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.967285Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:41937
[INFO] [stdout] [2m2026-05-05T21:29:57.969192Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.969203Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.969531Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.969658Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:37023
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:37023/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.971655Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:37023
[INFO] [stdout] [2m2026-05-05T21:29:57.976408Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.976664Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.976740Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.976874Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:43011
[INFO] [stdout] ✓ Server:     http://127.0.0.1:46831
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:46831/health
[INFO] [stdout]   curl http://127.0.0.1:43011/health
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.977858Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:43011
[INFO] [stdout] [2m2026-05-05T21:29:57.977858Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:46831
[INFO] [stdout] [2m2026-05-05T21:29:57.979043Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.979096Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.979432Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.979526Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.979819Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.980292Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.980426Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.980757Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.983260Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.983973Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied for tool call [3midentity_id[0m[2m=[0mreadonly [3mtool[0m[2m=[0mforbidden_tool [3mreason[0m[2m=[0mIdentity 'readonly' is not authorized to call tool 'forbidden_tool'
[INFO] [stdout] [2m2026-05-05T21:29:57.984041Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied [3merror_id[0m[2m=[0m4059d23f-d6f5-4daa-b888-268380372b8f [3merror[0m[2m=[0mIdentity 'readonly' is not authorized to call tool 'forbidden_tool'
[INFO] [stdout] [2m2026-05-05T21:29:57.984225Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.984228Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m403
[INFO] [stdout] [2m2026-05-05T21:29:57.984634Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.985344Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:57.985350Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:57.985459Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:38577
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:38577/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.985904Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:57.985972Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:38577
[INFO] [stdout] [2m2026-05-05T21:29:57.986424Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:46605
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:46605/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.986735Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:46605
[INFO] [stdout] test test_authorization_error_returns_json_rpc_error ... ok
[INFO] [stdout] test test_jsonrpc_notification_no_id ... ok
[INFO] [stdout] test test_initialized_notification ... ok
[INFO] [stdout] [2m2026-05-05T21:29:57.996544Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:57.996756Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42115
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42115/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:57.998448Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42115
[INFO] [stdout] [2m2026-05-05T21:29:58.006853Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m21 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_handles_large_arguments ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.021003Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.021361Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:45043
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:45043/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.022029Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:45043
[INFO] [stdout] [2m2026-05-05T21:29:58.022122Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.022390Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.022393Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.022640Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:34805
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:34805/health
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42917
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.023588Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:34805
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42917/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.023664Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42917
[INFO] [stdout] [2m2026-05-05T21:29:58.075376Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.080408Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.081013Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.081527Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.081660Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.081659Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.082077Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.083763Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.083791Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.084557Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:34837
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:34837/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.085331Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.085413Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.085442Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:34837
[INFO] [stdout] test test_handles_special_characters_in_path ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.086624Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.088066Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.088520Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.090645Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_handles_unicode_in_arguments ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.094268Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.096972Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.097416Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.098061Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.098293Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.099053Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.099893Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.100253Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.100570Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.101000Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_admin_can_call_any_tool ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.101432Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.101658Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.101706Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.101815Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.102753Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.102856Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_jsonrpc_request_with_string_id ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.104950Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.105909Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.106396Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_prompts_get_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.107841Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:41993
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:41993/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.109273Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:41993
[INFO] [stdout] test test_jsonrpc_request_with_id ... ok
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:35709
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:35709/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.113812Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:35709
[INFO] [stdout] [2m2026-05-05T21:29:58.117151Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.117397Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.125188Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.125545Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.131619Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.134592Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:37947
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:37947/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.137126Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:37947
[INFO] [stdout] [2m2026-05-05T21:29:58.138128Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.138420Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36463
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36463/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.139742Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36463
[INFO] [stdout] [2m2026-05-05T21:29:58.144126Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:46701
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:46701/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.144794Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:46701
[INFO] [stdout] [2m2026-05-05T21:29:58.149057Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_prompts_list_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.168990Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.174756Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.175255Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.175592Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:32997
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:32997/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.177222Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:32997
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:34465
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:34465/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.180822Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:34465
[INFO] [stdout] [2m2026-05-05T21:29:58.184003Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.184528Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.189327Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.191226Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.191733Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.193278Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.202056Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.203654Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m10 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.206941Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m17 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.209424Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m7 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.210997Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.211596Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.213412Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.213548Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.213964Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.214191Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied for tool call [3midentity_id[0m[2m=[0mrestricted [3mtool[0m[2m=[0mwrite_file [3mreason[0m[2m=[0mIdentity 'restricted' is not authorized to call tool 'write_file'
[INFO] [stdout] [2m2026-05-05T21:29:58.214273Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied [3merror_id[0m[2m=[0m12aea4fc-bdbf-46eb-96a3-53aa30670668 [3merror[0m[2m=[0mIdentity 'restricted' is not authorized to call tool 'write_file'
[INFO] [stdout] [2m2026-05-05T21:29:58.214513Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m403
[INFO] [stdout] [2m2026-05-05T21:29:58.215516Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.215685Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.215986Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied for tool call [3midentity_id[0m[2m=[0mrestricted [3mtool[0m[2m=[0mexecute_command [3mreason[0m[2m=[0mIdentity 'restricted' is not authorized to call tool 'execute_command'
[INFO] [stdout] [2m2026-05-05T21:29:58.216042Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied [3merror_id[0m[2m=[0m7278faa7-ac85-4e14-b42a-4ef5e850d8ce [3merror[0m[2m=[0mIdentity 'restricted' is not authorized to call tool 'execute_command'
[INFO] [stdout] [2m2026-05-05T21:29:58.216219Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m403
[INFO] [stdout] [2m2026-05-05T21:29:58.217154Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.217543Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied for tool call [3midentity_id[0m[2m=[0mrestricted [3mtool[0m[2m=[0mdelete_file [3mreason[0m[2m=[0mIdentity 'restricted' is not authorized to call tool 'delete_file'
[INFO] [stdout] [2m2026-05-05T21:29:58.217607Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied [3merror_id[0m[2m=[0mb79ffa2a-44ce-416e-97ca-41efb6123698 [3merror[0m[2m=[0mIdentity 'restricted' is not authorized to call tool 'delete_file'
[INFO] [stdout] [2m2026-05-05T21:29:58.217765Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m403
[INFO] [stdout] test test_restricted_user_denied_tools ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.219347Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_initialize_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.220806Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.221376Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied for tool call [3midentity_id[0m[2m=[0mreadonly [3mtool[0m[2m=[0mlist_directory [3mreason[0m[2m=[0mIdentity 'readonly' is not authorized to call tool 'list_directory'
[INFO] [stdout] [2m2026-05-05T21:29:58.223643Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.224055Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.224635Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.225254Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.221455Z[0m [33m WARN[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Authorization denied [3merror_id[0m[2m=[0me6cae918-a4fd-4d50-8427-77e8c68af427 [3merror[0m[2m=[0mIdentity 'readonly' is not authorized to call tool 'list_directory'
[INFO] [stdout] [2m2026-05-05T21:29:58.226771Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m403
[INFO] [stdout] test test_readonly_user_single_tool ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.230138Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.231377Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m15 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_resources_list_request ... ok
[INFO] [stdout] test test_single_request_not_array ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.235392Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.235712Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36287
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36287/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.237049Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36287
[INFO] [stdout] [2m2026-05-05T21:29:58.247796Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.253786Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:38957
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:38957/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.254823Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:38957
[INFO] [stdout] [2m2026-05-05T21:29:58.257175Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.263811Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.263979Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.264439Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.266752Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.268203Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.268780Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.270380Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.271397Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_restricted_user_allowed_tools ... ok
[INFO] [stdout] test test_tools_call_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.278451Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m21 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_resources_read_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.302367Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (3 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.305631Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:44493
[INFO] [stdout] ✓ Auth:       API Keys (3)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:44493/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.315870Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:44493
[INFO] [stdout] [2m2026-05-05T21:29:58.326259Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.326854Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.327951Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.328288Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.328590Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.329711Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.330217Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.330731Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_tools_call_with_complex_arguments ... ok
[INFO] [stdout] test test_tools_list_request ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.338085Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.338692Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.340539Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.342080Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_tools_list_with_cursor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rate_limit_tests.rs (/opt/rustwide/target/debug/deps/rate_limit_tests-50277c423c616d3f)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] [2m2026-05-05T21:29:58.374153Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.374517Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.376679Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.376856Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.377002Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (2 keys)
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36419
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36419/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.377200Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.377219Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36419
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:38335
[INFO] [stdout] ✓ Auth:       API Keys (2)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:38335/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.377997Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:38335
[INFO] [stdout] [2m2026-05-05T21:29:58.378165Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:36235
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✗ Rate Limit: Disabled
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:36235/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.378319Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:36235
[INFO] [stdout] [2m2026-05-05T21:29:58.378422Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:33407
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:33407/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.379717Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.379899Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.379932Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:33407
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:33523
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:33523/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.381753Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:33523
[INFO] [stdout] [2m2026-05-05T21:29:58.382913Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.383228Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.392424Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.392587Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.392942Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.392966Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.392973Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.393764Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.394188Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.395003Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.395249Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.395374Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.395915Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.396642Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.396938Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.397038Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.397192Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.397640Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.397872Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.398001Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.398213Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.398738Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.398837Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.398953Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.399040Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.399455Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.399688Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.399884Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.400518Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.400589Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.400725Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.400745Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.401335Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.401417Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.401564Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.401716Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.402100Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.402130Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.402167Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.402354Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.402854Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.403010Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.403416Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.403455Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.403602Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.403663Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.403843Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.404222Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.404275Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.404332Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.404516Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.404632Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.405120Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.405296Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.405291Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.405317Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.405567Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.405600Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.405947Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.406105Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.406150Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.406372Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.406782Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0me99407ed-f54b-49ba-b627-31970d22e4b4 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.406864Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.406962Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.407001Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.407290Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.407735Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.408145Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.408349Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.409033Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.409160Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_rate_limit_includes_retry_after_header ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.409514Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.409736Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.410081Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m7766a141-9994-47b4-b8ad-b0c88a8583c8 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.410261Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.410447Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.410648Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.411246Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.411417Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.412010Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.412215Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m50e0b3bf-cef0-4019-b014-5044bfb11006 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.412388Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.412659Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.412709Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.412798Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.412950Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.413319Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.413512Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.414210Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.414596Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.414911Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.415042Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.415347Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mc101f5cf-58f1-4ecc-9c58-91e5eaa676e3 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.415709Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.415860Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.416251Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.416404Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.416520Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.416520Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.416869Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.417219Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.417842Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.417956Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.418133Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m44d66316-50fd-4fdc-8d58-b4e82748c57c [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.418315Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.418699Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.418732Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:45261
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:45261/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.419195Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:45261
[INFO] [stdout] [2m2026-05-05T21:29:58.419199Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.419463Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.419887Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.420099Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m22c5762c-bf2f-4072-8783-ea5825aac089 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.420260Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.420265Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.421006Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.421334Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.421637Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.421721Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.421798Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.421956Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.422026Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0me75887f5-0868-4d10-a7ac-e7bda2fee737 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.422159Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.423131Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.423861Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.424040Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.424350Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m5d848eca-95e2-42b3-9711-e039468925a7 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.424700Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.424710Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.425196Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.425407Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.425945Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.426227Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_rate_limit_blocks_excess_requests ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.426951Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.426959Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.427702Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.427738Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42681
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42681/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.427980Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42681
[INFO] [stdout] [2m2026-05-05T21:29:58.428406Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.428453Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.429125Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.429123Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.429814Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.429822Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.430607Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.430611Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.431287Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.431422Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.432106Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.432180Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.432846Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.432908Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.432966Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.433158Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m7bdbba87-9e4a-4643-b7ed-690cb0ad18b7 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.433230Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.433344Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.433746Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.434070Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.434333Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m671e23a8-2f81-4ec6-8e0e-ed069feba0a8 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.434452Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.434524Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.435099Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.435195Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.435428Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.435458Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mea5e3b25-9d4e-41a2-b6ff-e5669f9f0308 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.435670Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.435705Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.435835Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.436027Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.436256Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.436402Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.436598Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:39843
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:39843/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.436740Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m94bf7b2b-c937-4cec-9974-a7f1b49e8670 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.436797Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:39843
[INFO] [stdout] [2m2026-05-05T21:29:58.436901Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.437337Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.437660Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.437937Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mce410c61-3f16-40b2-a896-07873afb32ca [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.438093Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.438120Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.438826Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.438830Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:43295
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:43295/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.439109Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:43295
[INFO] [stdout] [2m2026-05-05T21:29:58.439113Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m0799427f-fdfb-4598-a3c5-aa58632f4915 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.439265Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.439573Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.440043Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.440236Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.440306Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0me9df4439-ab3d-4c8b-ab17-4867c7c5c86b [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.440516Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.440990Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.441126Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.441263Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.441391Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.441732Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.442492Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.443251Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.443838Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m7ea52c97-b742-41be-9c31-92de5e84f769 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.443993Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.444004Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.444757Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.444798Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.445089Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mdfa9f40a-f3be-4948-88bf-6b306515ebef [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.445247Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.445329Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.445994Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.446064Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.446350Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m71d8bbaa-728b-49dd-bd7c-c0cd5113943f [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.446529Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.446671Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.446845Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.446919Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.447653Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.448369Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.449118Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.451199Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.451553Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m49aa29ed-60ee-4344-9252-b0f28901b928 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.451742Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.452517Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.452819Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m4f21d66e-bf41-4d5e-80e3-be0450d40333 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.452989Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.453645Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.453766Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.454058Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m46a8f61c-ff7e-42bc-8a31-259a91af1f98 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.454227Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.454720Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.455016Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.455316Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m0f1fa85a-1eb1-4986-afe0-915310238b07 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.455502Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.456251Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.456620Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m1098191d-2bd7-47b8-8c78-5071979dd568 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.456783Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.457542Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.457612Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.457900Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m9f8719ba-3c90-4d97-8f05-7b8b4e68bbf8 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.458067Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.457845Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.458845Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.459133Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m62277a74-90e0-43ab-9150-c160dfc1459e [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.459295Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.461880Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m12 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.464221Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.465176Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.463083Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.467119Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.468548Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m17310df9-d295-419d-904f-838d1c48c75a [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.468745Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.469526Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.469832Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m01eb41fb-6162-4609-a94d-a71b6fded14a [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.470000Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] test test_health_endpoint_not_rate_limited ... ok
[INFO] [stdout] test test_per_user_rate_limit_override ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.474426Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.476017Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:40851
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:40851/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.481785Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:40851
[INFO] [stdout] [2m2026-05-05T21:29:58.494124Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m23 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.498272Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.498776Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.502914Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.503788Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.504197Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.504468Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.506232Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.503441Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.511051Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m12 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.511861Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.513071Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.514667Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.518081Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.521897Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m7 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.522862Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.524794Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m11 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.526973Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.534956Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.534975Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.535486Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.537286Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.537600Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.537998Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.538377Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.539564Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.541273Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m26 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.542855Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.543043Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m8 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.543727Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.544827Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m7 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.545075Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.545749Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (2 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.546209Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.546880Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Enabling API key authentication (1 keys)
[INFO] [stdout] [2m2026-05-05T21:29:58.547569Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.547739Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.548523Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.549392Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] ✓ Server:     http://127.0.0.1:35225
[INFO] [stdout] ✓ Auth:       API Keys (2)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 100 req/s, burst 50
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:35225/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.549501Z[0m [32m INFO[0m [2mmcp_guard[0m[2m:[0m Using stdio transport [3mcommand[0m[2m=[0m/opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] [2m2026-05-05T21:29:58.549698Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:35225
[INFO] [stdout] [2m2026-05-05T21:29:58.550146Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] 
[INFO] [stdout] ╭──────────────────────────────────────────────╮
[INFO] [stdout] │  MCP Guard v1.0.0                            │
[INFO] [stdout] ╰──────────────────────────────────────────────╯
[INFO] [stdout] 
[INFO] [stdout] ✓ Server:     http://127.0.0.1:42133
[INFO] [stdout] [2m2026-05-05T21:29:58.550525Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0me610ee9e-8935-4312-82d6-91bb34fd3ac7 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] ✓ Auth:       API Keys (1)
[INFO] [stdout] ✓ Transport:  stdio → /opt/rustwide/workdir/tests/fixtures/echo_server.sh
[INFO] [stdout] ✓ Rate Limit: 2 req/s, burst 3
[INFO] [stdout] ✓ Audit:      Enabled
[INFO] [stdout] 
[INFO] [stdout] Ready for requests!
[INFO] [stdout] 
[INFO] [stdout] Test with:
[INFO] [stdout]   curl http://127.0.0.1:42133/health
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-05T21:29:58.550674Z[0m [32m INFO[0m [2mmcp_guard_core::server[0m[2m:[0m MCP Guard listening on 127.0.0.1:42133
[INFO] [stdout] [2m2026-05-05T21:29:58.550702Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.552759Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.555993Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.559820Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.563079Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.563539Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.563835Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m26 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.569666Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_rate_limit_returns_429_status ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.573707Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.574296Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m18 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.578833Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m9 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.581985Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m18 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.587357Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] test test_burst_allows_initial_requests ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.588361Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.589396Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.598408Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m45 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.598810Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.603258Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.603597Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.604128Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.604336Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m15 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.604528Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/health [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_rate_limit_allows_requests_within_limit ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.605108Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.605251Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.606119Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.606602Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.607230Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.607611Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.608105Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m34 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.608903Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.608931Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.609036Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.609224Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m496439ac-b7f5-484c-802f-924d135dc5fe [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.609258Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.609388Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.609671Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.610146Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.610395Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m271e8eff-8430-4465-b41f-a431dac1ac6f [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.610593Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.610646Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.610659Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.610958Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mdc871dbb-d93c-46dc-9c2f-3c5dc83fe88f [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.611112Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.611312Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.611591Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m08d7e3fd-c97b-489e-ac16-e831e43ad777 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.611442Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.611733Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.612097Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.612361Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.612378Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m5a589ee1-2300-4ca4-bf9c-f8794696cba4 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.612489Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.612769Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0maf9a5306-44b0-438f-a495-a93ed9b665fd [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.612923Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.613331Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.613600Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.613634Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.613880Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m2bd41d44-3872-4ade-994c-29eddbe58288 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.614029Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.614053Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.614360Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.614669Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mb3df6aa3-0180-4069-890d-1005437318f5 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.614744Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.614798Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.614817Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.614987Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m8c9b3935-d64d-4ba3-b2ef-4fb4600c0b4b [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.615135Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.615840Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.615878Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.615984Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.616134Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mb9b27080-4b1d-4cbd-9d62-7feb90f9bc0a [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.616145Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.616279Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.616463Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.616743Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.617346Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.617764Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mfd8cfc82-3794-4f59-9645-9b5e2f53883c [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.617872Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.617952Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.618169Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.618180Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m8db8b1e0-f3e5-48e3-b9a5-4c64b380c882 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.618779Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stderr] 
[INFO] [stderr] thread 'tokio-runtime-worker' (1116) panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/registry/sharded.rs:306:32:
[INFO] [stderr] tried to clone Id(824633720834), but no span exists with that ID
[INFO] [stderr] This may be caused by consuming a parent span (`parent: span`) rather than borrowing it (`parent: &span`).
[INFO] [stderr] stack backtrace:
[INFO] [stdout] [2m2026-05-05T21:29:58.619072Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.619269Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m9db82d2c-bfeb-40aa-bf81-2c952729a495 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.619306Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.619515Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.619899Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.620035Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.620179Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m714d1cec-16d0-48e4-a4b6-001c26664f3c [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.620356Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.620773Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.620794Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.621063Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.621348Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m[1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.621516Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.622157Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.624059Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.624302Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.624621Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m4ec52f7d-c3ee-46b9-9252-5f9f9dc9cb60 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.624666Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0me27d03c8-45ac-4959-9d0a-32da49c69fa3 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.624787Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m9 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.624831Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.625224Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.625674Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.625921Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.625982Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m7a49c0d2-a5e3-438b-890f-ad58315a0380 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.626146Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.626531Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m17 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.626560Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.626893Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.626901Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.627165Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m1b976271-6d12-4316-949e-d91b180268f3 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.627328Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.627375Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m33e43136-ee93-40ce-a639-0fe7c6c58677 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.627581Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0m8e0509de-b3cb-4811-a7dc-936cdc19fe3b [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.627637Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.627783Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m9 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.628626Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.628638Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.629302Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.629769Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mdaa645f6-63f2-4552-bd7a-3b8b6ffcd1c7 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.629912Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.629989Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.630738Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.631437Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.631649Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.631914Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m[1mhttp_request[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp[1m}[0m[2m:[0m [2mmcp_guard_core::server[0m[2m:[0m Rate limit exceeded [3merror_id[0m[2m=[0mc977b602-593c-4ba1-b167-9c492f128ed1 [3mretry_after[0m[2m=[0m1
[INFO] [stdout] [2m2026-05-05T21:29:58.632070Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.632149Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.632836Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.632936Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.633608Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m0 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_rate_limit_disabled_allows_all_requests ... ok
[INFO] [stdout] test test_rate_limits_are_per_identity ... ok
[INFO] [stdout] [2m2026-05-05T21:29:58.637618Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m10 ms [3mstatus[0m[2m=[0m429
[INFO] [stdout] [2m2026-05-05T21:29:58.638018Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.649885Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m11 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.651216Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.658123Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.662344Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.670820Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m8 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.671701Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.679062Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m7 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.681009Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.686532Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m5 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.691394Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.694303Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.699181Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.705892Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.713211Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.716629Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m3 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.722209Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.724870Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.727634Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.734278Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.737001Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.744955Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m7 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.745992Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.750723Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.754174Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.758886Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m4 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.761943Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.768625Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m6 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.769579Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.772302Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] [2m2026-05-05T21:29:58.774647Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:29:58.777175Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mGET [3muri[0m[2m=[0m/metrics [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m2 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_metrics_endpoint_not_rate_limited ... ok
[INFO] [stderr]    0:     0x64e0b870deda - std[fce30c26ee6459b]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stderr]    1:     0x64e0b870deda - std[fce30c26ee6459b]::backtrace_rs::backtrace::trace_unsynchronized::<std[fce30c26ee6459b]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stderr]    2:     0x64e0b870deda - std[fce30c26ee6459b]::sys::backtrace::_print_fmt
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:74:9
[INFO] [stderr]    3:     0x64e0b870deda - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:44:26
[INFO] [stderr]    4:     0x64e0b8727bfa - <core[d17f6591d688f3bd]::fmt::rt::Argument>::fmt
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/fmt/rt.rs:152:76
[INFO] [stderr]    5:     0x64e0b8727bfa - core[d17f6591d688f3bd]::fmt::write
[INFO] [stderr]    6:     0x64e0b8714dc2 - std[fce30c26ee6459b]::io::default_write_fmt::<std[fce30c26ee6459b]::sys::stdio::unix::Stderr>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:621:11
[INFO] [stderr]    7:     0x64e0b8714dc2 - <std[fce30c26ee6459b]::sys::stdio::unix::Stderr as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:1976:13
[INFO] [stderr]    8:     0x64e0b86ebf1f - <std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:47:9
[INFO] [stderr]    9:     0x64e0b86ebf1f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:292:27
[INFO] [stderr]   10:     0x64e0b8705441 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:319:9
[INFO] [stderr]   11:     0x64e0b87056bb - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:825:13
[INFO] [stderr]   12:     0x64e0b86ebfd8 - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:698:13
[INFO] [stderr]   13:     0x64e0b86e09b9 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:182:18
[INFO] [stderr]   14:     0x64e0b86ed0cd - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:689:5
[INFO] [stderr]   15:     0x64e0b872846c - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panicking.rs:80:14
[INFO] [stderr]   16:     0x64e0b7b1ab82 - <tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::clone_span::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/registry/sharded.rs:306:32
[INFO] [stderr]   17:     0x64e0b7b52db6 - <core[d17f6591d688f3bd]::option::Option<sharded_slab[c631d6ea72e022d4]::pool::Ref<tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::DataInner>>>::unwrap_or_else::<<tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::clone_span::{closure#0}>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/option.rs:1067:21
[INFO] [stderr]   18:     0x64e0b7b1bc42 - <tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::clone_span
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/registry/sharded.rs:306:14
[INFO] [stderr]   19:     0x64e0b7b1ae27 - <tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::new_span::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/registry/sharded.rs:242:52
[INFO] [stderr]   20:     0x64e0b7b53882 - <core[d17f6591d688f3bd]::option::Option<&tracing_core[39ca340e1e7b12a5]::span::Id>>::map::<tracing_core[39ca340e1e7b12a5]::span::Id, <tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::new_span::{closure#0}>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/option.rs:1165:29
[INFO] [stderr]   21:     0x64e0b7608dd2 - <tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::new_span
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/registry/sharded.rs:242:38
[INFO] [stderr]   22:     0x64e0b76515b3 - <tracing_subscriber[93dc86a8b3914ef3]::layer::layered::Layered<tracing_subscriber[93dc86a8b3914ef3]::filter::env::EnvFilter, tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry> as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::new_span
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/layer/layered.rs:131:29
[INFO] [stderr]   23:     0x64e0b7650eae - <tracing_subscriber[93dc86a8b3914ef3]::layer::layered::Layered<tracing_subscriber[93dc86a8b3914ef3]::fmt::fmt_layer::Layer<tracing_subscriber[93dc86a8b3914ef3]::layer::layered::Layered<tracing_subscriber[93dc86a8b3914ef3]::filter::env::EnvFilter, tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry>>, tracing_subscriber[93dc86a8b3914ef3]::layer::layered::Layered<tracing_subscriber[93dc86a8b3914ef3]::filter::env::EnvFilter, tracing_subscriber[93dc86a8b3914ef3]::registry::sharded::Registry>> as tracing_core[39ca340e1e7b12a5]::subscriber::Subscriber>::new_span
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/layer/layered.rs:131:29
[INFO] [stderr]   24:     0x64e0b7efd1e9 - <tracing_core[39ca340e1e7b12a5]::dispatcher::Dispatch>::new_span
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.35/src/dispatcher.rs:556:27
[INFO] [stderr]   25:     0x64e0b7efcb59 - <tracing[d72c27eecf35964b]::span::Span>::make_with
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.43/src/span.rs:570:27
[INFO] [stderr]   26:     0x64e0b7efcaf2 - <tracing[d72c27eecf35964b]::span::Span>::new_with
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.43/src/span.rs:449:9
[INFO] [stderr]   27:     0x64e0b7efc07d - <tracing[d72c27eecf35964b]::span::Span>::new::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.43/src/span.rs:438:44
[INFO] [stderr]   28:     0x64e0b7efb83c - tracing_core[39ca340e1e7b12a5]::dispatcher::get_default::<tracing[d72c27eecf35964b]::span::Span, <tracing[d72c27eecf35964b]::span::Span>::new::{closure#0}>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.35/src/dispatcher.rs:386:16
[INFO] [stderr]   29:     0x64e0b7efca55 - <tracing[d72c27eecf35964b]::span::Span>::new
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.43/src/span.rs:438:9
[INFO] [stderr]   30:     0x64e0b74d7ba5 - <tower_http[dd2664def0d9f8d]::trace::make_span::DefaultMakeSpan as tower_http[dd2664def0d9f8d]::trace::make_span::MakeSpan<axum_core[5a624ac841c6f511]::body::Body>>::make_span
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.8/src/trace/make_span.rs:94:21
[INFO] [stderr]   31:     0x64e0b758f5ef - <tower_http[dd2664def0d9f8d]::trace::service::Trace<axum[4314c2095acbacba]::routing::route::Route, tower_http[dd2664def0d9f8d]::classify::SharedClassifier<tower_http[dd2664def0d9f8d]::classify::ServerErrorsAsFailures>> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.8/src/trace/service.rs:304:35
[INFO] [stderr]   32:     0x64e0b75c9837 - <tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower_http[dd2664def0d9f8d]::trace::service::Trace<axum[4314c2095acbacba]::routing::route::Route, tower_http[dd2664def0d9f8d]::classify::SharedClassifier<tower_http[dd2664def0d9f8d]::classify::ServerErrorsAsFailures>>, <http[630b88bb535a31f1]::response::Response<tower_http[dd2664def0d9f8d]::trace::body::ResponseBody<axum_core[5a624ac841c6f511]::body::Body, tower_http[dd2664def0d9f8d]::classify::NeverClassifyEos<tower_http[dd2664def0d9f8d]::classify::ServerErrorsFailureClass>>> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/map_response.rs:75:43
[INFO] [stderr]   33:     0x64e0b76084b7 - <tower[2a631d9fcc03ab3d]::util::map_err::MapErr<tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower_http[dd2664def0d9f8d]::trace::service::Trace<axum[4314c2095acbacba]::routing::route::Route, tower_http[dd2664def0d9f8d]::classify::SharedClassifier<tower_http[dd2664def0d9f8d]::classify::ServerErrorsAsFailures>>, <http[630b88bb535a31f1]::response::Response<tower_http[dd2664def0d9f8d]::trace::body::ResponseBody<axum_core[5a624ac841c6f511]::body::Body, tower_http[dd2664def0d9f8d]::classify::NeverClassifyEos<tower_http[dd2664def0d9f8d]::classify::ServerErrorsFailureClass>>> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response>, <core[d17f6591d688f3bd]::convert::Infallible as core[d17f6591d688f3bd]::convert::Into<core[d17f6591d688f3bd]::convert::Infallible>>::into> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/map_err.rs:75:38
[INFO] [stderr]   34:     0x64e0b75c8ee7 - <tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower[2a631d9fcc03ab3d]::util::map_err::MapErr<tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower_http[dd2664def0d9f8d]::trace::service::Trace<axum[4314c2095acbacba]::routing::route::Route, tower_http[dd2664def0d9f8d]::classify::SharedClassifier<tower_http[dd2664def0d9f8d]::classify::ServerErrorsAsFailures>>, <http[630b88bb535a31f1]::response::Response<tower_http[dd2664def0d9f8d]::trace::body::ResponseBody<axum_core[5a624ac841c6f511]::body::Body, tower_http[dd2664def0d9f8d]::classify::NeverClassifyEos<tower_http[dd2664def0d9f8d]::classify::ServerErrorsFailureClass>>> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response>, <core[d17f6591d688f3bd]::convert::Infallible as core[d17f6591d688f3bd]::convert::Into<core[d17f6591d688f3bd]::convert::Infallible>>::into>, <http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/map_response.rs:75:43
[INFO] [stderr]   35:     0x64e0b75d734b - <tower[2a631d9fcc03ab3d]::util::map_future::MapFuture<tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower[2a631d9fcc03ab3d]::util::map_err::MapErr<tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower_http[dd2664def0d9f8d]::trace::service::Trace<axum[4314c2095acbacba]::routing::route::Route, tower_http[dd2664def0d9f8d]::classify::SharedClassifier<tower_http[dd2664def0d9f8d]::classify::ServerErrorsAsFailures>>, <http[630b88bb535a31f1]::response::Response<tower_http[dd2664def0d9f8d]::trace::body::ResponseBody<axum_core[5a624ac841c6f511]::body::Body, tower_http[dd2664def0d9f8d]::classify::NeverClassifyEos<tower_http[dd2664def0d9f8d]::classify::ServerErrorsFailureClass>>> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response>, <core[d17f6591d688f3bd]::convert::Infallible as core[d17f6591d688f3bd]::convert::Into<core[d17f6591d688f3bd]::convert::Infallible>>::into>, <http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response>, <tower[2a631d9fcc03ab3d]::util::boxed_clone::BoxCloneService<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>, http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body>, core[d17f6591d688f3bd]::convert::Infallible>>::new<tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower[2a631d9fcc03ab3d]::util::map_err::MapErr<tower[2a631d9fcc03ab3d]::util::map_response::MapResponse<tower_http[dd2664def0d9f8d]::trace::service::Trace<axum[4314c2095acbacba]::routing::route::Route, tower_http[dd2664def0d9f8d]::classify::SharedClassifier<tower_http[dd2664def0d9f8d]::classify::ServerErrorsAsFailures>>, <http[630b88bb535a31f1]::response::Response<tower_http[dd2664def0d9f8d]::trace::body::ResponseBody<axum_core[5a624ac841c6f511]::body::Body, tower_http[dd2664def0d9f8d]::classify::NeverClassifyEos<tower_http[dd2664def0d9f8d]::classify::ServerErrorsFailureClass>>> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response>, <core[d17f6591d688f3bd]::convert::Infallible as core[d17f6591d688f3bd]::convert::Into<core[d17f6591d688f3bd]::convert::Infallible>>::into>, <http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body> as axum_core[5a624ac841c6f511]::response::into_response::IntoResponse>::into_response>>::{closure#0}> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/map_future.rs:65:29
[INFO] [stderr]   36:     0x64e0b7abc63a - <alloc[dad09f3a48280dba]::boxed::Box<dyn tower[2a631d9fcc03ab3d]::util::boxed_clone::CloneService<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>, Response = http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body>, Error = core[d17f6591d688f3bd]::convert::Infallible, Future = core[d17f6591d688f3bd]::pin::Pin<alloc[dad09f3a48280dba]::boxed::Box<dyn core[d17f6591d688f3bd]::future::future::Future<Output = core[d17f6591d688f3bd]::result::Result<http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body>, core[d17f6591d688f3bd]::convert::Infallible>> + core[d17f6591d688f3bd]::marker::Send>>> + core[d17f6591d688f3bd]::marker::Send> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/src/lib.rs:388:18
[INFO] [stderr]   37:     0x64e0b7ad965a - <tower[2a631d9fcc03ab3d]::util::boxed_clone::BoxCloneService<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>, http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body>, core[d17f6591d688f3bd]::convert::Infallible> as tower_service[883391ff38155acd]::Service<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>>>::call
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/boxed_clone.rs:101:16
[INFO] [stderr]   38:     0x64e0b7acf629 - <tower[2a631d9fcc03ab3d]::util::oneshot::Oneshot<tower[2a631d9fcc03ab3d]::util::boxed_clone::BoxCloneService<http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>, http[630b88bb535a31f1]::response::Response<axum_core[5a624ac841c6f511]::body::Body>, core[d17f6591d688f3bd]::convert::Infallible>, http[630b88bb535a31f1]::request::Request<axum_core[5a624ac841c6f511]::body::Body>> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/oneshot.rs:93:33
[INFO] [stderr]   39:     0x64e0b7ad484e - <axum[4314c2095acbacba]::routing::route::RouteFuture<core[d17f6591d688f3bd]::convert::Infallible> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/route.rs:182:68
[INFO] [stderr]   40:     0x64e0b75d8573 - <hyper_util[160ca5b8597689d]::service::oneshot::Oneshot<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>, http[630b88bb535a31f1]::request::Request<hyper[d5135981b8775bb3]::body::incoming::Incoming>> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.19/src/service/oneshot.rs:55:42
[INFO] [stderr]   41:     0x64e0b75cb223 - <hyper_util[160ca5b8597689d]::service::glue::TowerToHyperServiceFuture<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>, http[630b88bb535a31f1]::request::Request<hyper[d5135981b8775bb3]::body::incoming::Incoming>> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.19/src/service/glue.rs:70:31
[INFO] [stderr]   42:     0x64e0b77156e4 - <hyper[d5135981b8775bb3]::proto::h1::dispatch::Server<hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper[d5135981b8775bb3]::body::incoming::Incoming> as hyper[d5135981b8775bb3]::proto::h1::dispatch::Dispatch>::poll_msg
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/proto/h1/dispatch.rs:538:48
[INFO] [stderr]   43:     0x64e0b7705538 - <hyper[d5135981b8775bb3]::proto::h1::dispatch::Dispatcher<hyper[d5135981b8775bb3]::proto::h1::dispatch::Server<hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper[d5135981b8775bb3]::body::incoming::Incoming>, axum_core[5a624ac841c6f511]::body::Body, hyper_util[160ca5b8597689d]::common::rewind::Rewind<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>>, hyper[d5135981b8775bb3]::proto::h1::role::Server>>::poll_write
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/proto/h1/dispatch.rs:336:72
[INFO] [stderr]   44:     0x64e0b77076f9 - <hyper[d5135981b8775bb3]::proto::h1::dispatch::Dispatcher<hyper[d5135981b8775bb3]::proto::h1::dispatch::Server<hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper[d5135981b8775bb3]::body::incoming::Incoming>, axum_core[5a624ac841c6f511]::body::Body, hyper_util[160ca5b8597689d]::common::rewind::Rewind<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>>, hyper[d5135981b8775bb3]::proto::h1::role::Server>>::poll_loop
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/proto/h1/dispatch.rs:173:26
[INFO] [stderr]   45:     0x64e0b77050e8 - <hyper[d5135981b8775bb3]::proto::h1::dispatch::Dispatcher<hyper[d5135981b8775bb3]::proto::h1::dispatch::Server<hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper[d5135981b8775bb3]::body::incoming::Incoming>, axum_core[5a624ac841c6f511]::body::Body, hyper_util[160ca5b8597689d]::common::rewind::Rewind<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>>, hyper[d5135981b8775bb3]::proto::h1::role::Server>>::poll_inner
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/proto/h1/dispatch.rs:149:21
[INFO] [stderr]   46:     0x64e0b7704fbc - <hyper[d5135981b8775bb3]::proto::h1::dispatch::Dispatcher<hyper[d5135981b8775bb3]::proto::h1::dispatch::Server<hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper[d5135981b8775bb3]::body::incoming::Incoming>, axum_core[5a624ac841c6f511]::body::Body, hyper_util[160ca5b8597689d]::common::rewind::Rewind<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>>, hyper[d5135981b8775bb3]::proto::h1::role::Server>>::poll_catch
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/proto/h1/dispatch.rs:128:33
[INFO] [stderr]   47:     0x64e0b7718bde - <hyper[d5135981b8775bb3]::proto::h1::dispatch::Dispatcher<hyper[d5135981b8775bb3]::proto::h1::dispatch::Server<hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper[d5135981b8775bb3]::body::incoming::Incoming>, axum_core[5a624ac841c6f511]::body::Body, hyper_util[160ca5b8597689d]::common::rewind::Rewind<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>>, hyper[d5135981b8775bb3]::proto::h1::role::Server> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/proto/h1/dispatch.rs:471:14
[INFO] [stderr]   48:     0x64e0b760ab33 - <hyper[d5135981b8775bb3]::server::conn::http1::UpgradeableConnection<hyper_util[160ca5b8597689d]::common::rewind::Rewind<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>>, hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.8.1/src/server/conn/http1.rs:539:51
[INFO] [stderr]   49:     0x64e0b74a6af7 - <hyper_util[160ca5b8597689d]::server::conn::auto::UpgradeableConnection<hyper_util[160ca5b8597689d]::rt::tokio::TokioIo<tokio[1da8b235fed1da2d]::net::tcp::stream::TcpStream>, hyper_util[160ca5b8597689d]::service::glue::TowerToHyperService<tower[2a631d9fcc03ab3d]::util::map_request::MapRequest<axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>, <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#3}>>, hyper_util[160ca5b8597689d]::rt::tokio::TokioExecutor> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.19/src/server/conn/auto/mod.rs:694:33
[INFO] [stderr]   50:     0x64e0b757b239 - <axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/serve.rs:257:26
[INFO] [stderr]   51:     0x64e0b744dd1c - <tokio[1da8b235fed1da2d]::runtime::task::core::Core<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>>::poll::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/core.rs:365:24
[INFO] [stderr]   52:     0x64e0b746094c - <tokio[1da8b235fed1da2d]::loom::std::unsafe_cell::UnsafeCell<tokio[1da8b235fed1da2d]::runtime::task::core::Stage<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}>>>::with_mut::<core[d17f6591d688f3bd]::task::poll::Poll<()>, <tokio[1da8b235fed1da2d]::runtime::task::core::Core<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>>::poll::{closure#0}>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/loom/std/unsafe_cell.rs:16:9
[INFO] [stderr]   53:     0x64e0b746094c - <tokio[1da8b235fed1da2d]::runtime::task::core::Core<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/core.rs:354:30
[INFO] [stderr]   54:     0x64e0b753abee - tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future::<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:535:30
[INFO] [stderr]   55:     0x64e0b743cc31 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stderr]   56:     0x64e0b75fecaf - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>, core[d17f6591d688f3bd]::task::poll::Poll<()>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stderr]   57:     0x64e0b76d272b - __rust_try
[INFO] [stderr]   58:     0x64e0b76a05d3 - std[fce30c26ee6459b]::panicking::catch_unwind::<core[d17f6591d688f3bd]::task::poll::Poll<()>, core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stderr]   59:     0x64e0b76a05d3 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>, core[d17f6591d688f3bd]::task::poll::Poll<()>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stderr]   60:     0x64e0b7532f80 - tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future::<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:523:18
[INFO] [stderr]   61:     0x64e0b7549859 - <tokio[1da8b235fed1da2d]::runtime::task::harness::Harness<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>>::poll_inner
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:210:27
[INFO] [stderr]   62:     0x64e0b7549b17 - <tokio[1da8b235fed1da2d]::runtime::task::harness::Harness<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:155:20
[INFO] [stderr]   63:     0x64e0b76a584d - tokio[1da8b235fed1da2d]::runtime::task::raw::poll::<<axum[4314c2095acbacba]::serve::Serve<axum[4314c2095acbacba]::extract::connect_info::IntoMakeServiceWithConnectInfo<axum[4314c2095acbacba]::routing::Router, core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>, axum[4314c2095acbacba]::extension::AddExtension<axum[4314c2095acbacba]::routing::Router, axum[4314c2095acbacba]::extract::connect_info::ConnectInfo<core[d17f6591d688f3bd]::net::socket_addr::SocketAddr>>> as core[d17f6591d688f3bd]::future::into_future::IntoFuture>::into_future::{closure#0}::{closure#4}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/raw.rs:325:13
[INFO] [stderr]   64:     0x64e0b86782a7 - <tokio[1da8b235fed1da2d]::runtime::task::raw::RawTask>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/raw.rs:255:18
[INFO] [stderr]   65:     0x64e0b864e5e2 - <tokio[1da8b235fed1da2d]::runtime::task::LocalNotified<alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::handle::Handle>>>::run
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:509:13
[INFO] [stderr]   66:     0x64e0b861627d - <tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:600:18
[INFO] [stderr]   67:     0x64e0b861ee89 - tokio[1da8b235fed1da2d]::task::coop::with_budget::<core[d17f6591d688f3bd]::result::Result<alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Core>, ()>, <tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5
[INFO] [stderr]   68:     0x64e0b861ee89 - tokio[1da8b235fed1da2d]::task::coop::budget::<core[d17f6591d688f3bd]::result::Result<alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Core>, ()>, <tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5
[INFO] [stderr]   69:     0x64e0b861ee89 - <tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Context>::run_task
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:591:9
[INFO] [stderr]   70:     0x64e0b861ded8 - <tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Context>::run
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:551:29
[INFO] [stderr]   71:     0x64e0b8615a69 - tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:504:24
[INFO] [stderr]   72:     0x64e0b862a630 - <tokio[1da8b235fed1da2d]::runtime::context::scoped::Scoped<tokio[1da8b235fed1da2d]::runtime::scheduler::Context>>::set::<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}, ()>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9
[INFO] [stderr]   73:     0x64e0b8635ccb - tokio[1da8b235fed1da2d]::runtime::context::set_scheduler::<(), tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:38
[INFO] [stderr]   74:     0x64e0b863c26b - <std[fce30c26ee6459b]::thread::local::LocalKey<tokio[1da8b235fed1da2d]::runtime::context::Context>>::try_with::<tokio[1da8b235fed1da2d]::runtime::context::set_scheduler<(), tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/local.rs:462:12
[INFO] [stderr]   75:     0x64e0b863becf - <std[fce30c26ee6459b]::thread::local::LocalKey<tokio[1da8b235fed1da2d]::runtime::context::Context>>::with::<tokio[1da8b235fed1da2d]::runtime::context::set_scheduler<(), tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/local.rs:426:20
[INFO] [stderr]   76:     0x64e0b8635754 - tokio[1da8b235fed1da2d]::runtime::context::set_scheduler::<(), tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:17
[INFO] [stderr]   77:     0x64e0b86172d9 - tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:499:9
[INFO] [stderr]   78:     0x64e0b863da5f - tokio[1da8b235fed1da2d]::runtime::context::runtime::enter_runtime::<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run::{closure#0}, ()>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16
[INFO] [stderr]   79:     0x64e0b86200f1 - tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::run
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:491:5
[INFO] [stderr]   80:     0x64e0b8615c2b - <tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/worker.rs:457:45
[INFO] [stderr]   81:     0x64e0b862898b - <tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/blocking/task.rs:42:21
[INFO] [stderr]   82:     0x64e0b8610d7c - <tokio[1da8b235fed1da2d]::runtime::task::core::Core<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>>::poll::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/core.rs:365:24
[INFO] [stderr]   83:     0x64e0b861386c - <tokio[1da8b235fed1da2d]::loom::std::unsafe_cell::UnsafeCell<tokio[1da8b235fed1da2d]::runtime::task::core::Stage<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>>>>::with_mut::<core[d17f6591d688f3bd]::task::poll::Poll<()>, <tokio[1da8b235fed1da2d]::runtime::task::core::Core<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>>::poll::{closure#0}>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/loom/std/unsafe_cell.rs:16:9
[INFO] [stderr]   84:     0x64e0b861386c - <tokio[1da8b235fed1da2d]::runtime::task::core::Core<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/core.rs:354:30
[INFO] [stderr]   85:     0x64e0b860da3e - tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future::<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:535:30
[INFO] [stderr]   86:     0x64e0b8663b21 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stderr]   87:     0x64e0b866c48f - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>::{closure#0}>, core[d17f6591d688f3bd]::task::poll::Poll<()>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stderr]   88:     0x64e0b864a0eb - __rust_try
[INFO] [stderr]   89:     0x64e0b8644583 - std[fce30c26ee6459b]::panicking::catch_unwind::<core[d17f6591d688f3bd]::task::poll::Poll<()>, core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>::{closure#0}>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stderr]   90:     0x64e0b8644583 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>::{closure#0}>, core[d17f6591d688f3bd]::task::poll::Poll<()>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stderr]   91:     0x64e0b860d210 - tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future::<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:523:18
[INFO] [stderr]   92:     0x64e0b860f0a9 - <tokio[1da8b235fed1da2d]::runtime::task::harness::Harness<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>>::poll_inner
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:210:27
[INFO] [stderr]   93:     0x64e0b860f367 - <tokio[1da8b235fed1da2d]::runtime::task::harness::Harness<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:155:20
[INFO] [stderr]   94:     0x64e0b867410d - tokio[1da8b235fed1da2d]::runtime::task::raw::poll::<tokio[1da8b235fed1da2d]::runtime::blocking::task::BlockingTask<<tokio[1da8b235fed1da2d]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/raw.rs:325:13
[INFO] [stderr]   95:     0x64e0b86782a7 - <tokio[1da8b235fed1da2d]::runtime::task::raw::RawTask>::poll
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/raw.rs:255:18
[INFO] [stderr]   96:     0x64e0b864e627 - <tokio[1da8b235fed1da2d]::runtime::task::UnownedTask<tokio[1da8b235fed1da2d]::runtime::blocking::schedule::BlockingSchedule>>::run
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:546:13
[INFO] [stderr]   97:     0x64e0b86370e7 - <tokio[1da8b235fed1da2d]::runtime::blocking::pool::Task>::run
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/blocking/pool.rs:161:19
[INFO] [stderr]   98:     0x64e0b8638980 - <tokio[1da8b235fed1da2d]::runtime::blocking::pool::Inner>::run
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/blocking/pool.rs:516:22
[INFO] [stderr]   99:     0x64e0b8636654 - <tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}
[INFO] [stderr]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/blocking/pool.rs:474:47
[INFO] [stderr]  100:     0x64e0b8624286 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:166:18
[INFO] [stderr]  101:     0x64e0b868a512 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1}::{closure#0}
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stderr]  102:     0x64e0b8663c01 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1}::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stderr]  103:     0x64e0b866c5d7 - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stderr]  104:     0x64e0b86903fb - __rust_try
[INFO] [stderr]  105:     0x64e0b868a1c4 - std[fce30c26ee6459b]::panicking::catch_unwind::<(), core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1}::{closure#0}>>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stderr]  106:     0x64e0b868a1c4 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stderr]  107:     0x64e0b868a1c4 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1}
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stderr]  108:     0x64e0b86620ef - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<<tokio[1da8b235fed1da2d]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stderr]  109:     0x64e0b870cdcf - <alloc[dad09f3a48280dba]::boxed::Box<dyn core[d17f6591d688f3bd]::ops::function::FnOnce<(), Output = ()> + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2271:9
[INFO] [stderr]  110:     0x64e0b870cdcf - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stderr]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stderr]  111:     0x72cc8c754aa4 - <unknown>
[INFO] [stderr]  112:     0x72cc8c7e1a64 - clone
[INFO] [stderr]  113:                0x0 - <unknown>
[INFO] [stdout] test test_rate_limit_under_concurrent_load ... FAILED
[INFO] [stdout] [2m2026-05-05T21:30:00.618792Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_request[0m[2m:[0m started processing request
[INFO] [stdout] [2m2026-05-05T21:30:00.619998Z[0m [34mDEBUG[0m [1mrequest[0m[1m{[0m[3mmethod[0m[2m=[0mPOST [3muri[0m[2m=[0m/mcp [3mversion[0m[2m=[0mHTTP/1.1[1m}[0m[2m:[0m [2mtower_http::trace::on_response[0m[2m:[0m finished processing request [3mlatency[0m[2m=[0m1 ms [3mstatus[0m[2m=[0m200
[INFO] [stdout] test test_rate_limit_recovers_over_time ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_rate_limit_under_concurrent_load stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_rate_limit_under_concurrent_load' (1100) panicked at tests/rate_limit_tests.rs:620:18:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Request, url: "http://127.0.0.1:42133/mcp", source: hyper_util::client::legacy::Error(SendRequest, hyper::Error(IncompleteMessage)) }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64d1458ea20a - std[fce30c26ee6459b]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64d1458ea20a - std[fce30c26ee6459b]::backtrace_rs::backtrace::trace_unsynchronized::<std[fce30c26ee6459b]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64d1458ea20a - std[fce30c26ee6459b]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64d1458ea20a - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64d14590135a - <core[d17f6591d688f3bd]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64d14590135a - core[d17f6591d688f3bd]::fmt::write
[INFO] [stdout]    6:     0x64d1458ef582 - std[fce30c26ee6459b]::io::default_write_fmt::<alloc[dad09f3a48280dba]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x64d1458ef582 - <alloc[dad09f3a48280dba]::vec::Vec<u8> as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x64d1458c6a6f - <std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64d1458c6a6f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64d1458e18f9 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64d1452400cc - <alloc[dad09f3a48280dba]::boxed::Box<dyn for<'a, 'b> core[d17f6591d688f3bd]::ops::function::Fn<(&'a std[fce30c26ee6459b]::panic::PanicHookInfo<'b>,), Output = ()> + core[d17f6591d688f3bd]::marker::Sync + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::Fn<(&std[fce30c26ee6459b]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x64d1452400cc - test[9653f4f1d2ca1489]::test_main_inner::<test[9653f4f1d2ca1489]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x64d1458e1b72 - <alloc[dad09f3a48280dba]::boxed::Box<dyn for<'a, 'b> core[d17f6591d688f3bd]::ops::function::Fn<(&'a std[fce30c26ee6459b]::panic::PanicHookInfo<'b>,), Output = ()> + core[d17f6591d688f3bd]::marker::Sync + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::Fn<(&std[fce30c26ee6459b]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x64d1458e1b72 - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64d1458c6b28 - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64d1458bbb79 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64d1458c79fd - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64d145901b4c - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64d145901892 - core[d17f6591d688f3bd]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64d1452093a1 - <core[d17f6591d688f3bd]::result::Result<reqwest[de6b32c6dfc77f9c]::async_impl::response::Response, reqwest[de6b32c6dfc77f9c]::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x64d1452093a1 - rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rate_limit_tests.rs:620:18
[INFO] [stdout]   22:     0x64d1451f2698 - <tokio[1da8b235fed1da2d]::runtime::task::core::Core<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>>::poll::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/core.rs:365:24
[INFO] [stdout]   23:     0x64d1451f6d58 - <tokio[1da8b235fed1da2d]::loom::std::unsafe_cell::UnsafeCell<tokio[1da8b235fed1da2d]::runtime::task::core::Stage<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}>>>::with_mut::<core[d17f6591d688f3bd]::task::poll::Poll<http[630b88bb535a31f1]::status::StatusCode>, <tokio[1da8b235fed1da2d]::runtime::task::core::Core<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>>::poll::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/loom/std/unsafe_cell.rs:16:9
[INFO] [stdout]   24:     0x64d1451f6d58 - <tokio[1da8b235fed1da2d]::runtime::task::core::Core<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>>::poll
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/core.rs:354:30
[INFO] [stdout]   25:     0x64d1451f17aa - tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future::<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:535:30
[INFO] [stdout]   26:     0x64d145201ae0 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x64d1451f051e - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>::{closure#0}>, core[d17f6591d688f3bd]::task::poll::Poll<http[630b88bb535a31f1]::status::StatusCode>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x64d1451f806b - __rust_try
[INFO] [stdout]   29:     0x64d1451ee473 - std[fce30c26ee6459b]::panicking::catch_unwind::<core[d17f6591d688f3bd]::task::poll::Poll<http[630b88bb535a31f1]::status::StatusCode>, core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64d1451ee473 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>::{closure#0}>, core[d17f6591d688f3bd]::task::poll::Poll<http[630b88bb535a31f1]::status::StatusCode>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64d1451efeef - tokio[1da8b235fed1da2d]::runtime::task::harness::poll_future::<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:523:18
[INFO] [stdout]   32:     0x64d1451f59a2 - <tokio[1da8b235fed1da2d]::runtime::task::harness::Harness<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>>::poll_inner
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:210:27
[INFO] [stdout]   33:     0x64d1451f5c43 - <tokio[1da8b235fed1da2d]::runtime::task::harness::Harness<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>>::poll
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/harness.rs:155:20
[INFO] [stdout]   34:     0x64d1451fc9eb - tokio[1da8b235fed1da2d]::runtime::task::raw::poll::<rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}::{closure#0}, alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/raw.rs:325:13
[INFO] [stdout]   35:     0x64d1457d0df7 - <tokio[1da8b235fed1da2d]::runtime::task::raw::RawTask>::poll
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/raw.rs:255:18
[INFO] [stdout]   36:     0x64d14521f062 - <tokio[1da8b235fed1da2d]::runtime::task::LocalNotified<alloc[dad09f3a48280dba]::sync::Arc<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Handle>>>::run
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:509:13
[INFO] [stdout]   37:     0x64d14520880b - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#1}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:789:30
[INFO] [stdout]   38:     0x64d145206d75 - tokio[1da8b235fed1da2d]::task::coop::with_budget::<(), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#1}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   39:     0x64d145206d75 - tokio[1da8b235fed1da2d]::task::coop::budget::<(), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#1}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   40:     0x64d145206d75 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Context>::run_task::<(), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#1}>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:368:43
[INFO] [stdout]   41:     0x64d145202986 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Context>::enter::<(), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Context>::run_task<(), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#1}>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19
[INFO] [stdout]   42:     0x64d145202d5c - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Context>::run_task::<(), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#1}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:368:28
[INFO] [stdout]   43:     0x64d1452082d8 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:785:43
[INFO] [stdout]   44:     0x64d145206e24 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68
[INFO] [stdout]   45:     0x64d1451f8c8b - <tokio[1da8b235fed1da2d]::runtime::context::scoped::Scoped<tokio[1da8b235fed1da2d]::runtime::scheduler::Context>>::set::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}, (alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>)>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   46:     0x64d1451fdf99 - tokio[1da8b235fed1da2d]::runtime::context::set_scheduler::<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:38
[INFO] [stdout]   47:     0x64d1451f9412 - <std[fce30c26ee6459b]::thread::local::LocalKey<tokio[1da8b235fed1da2d]::runtime::context::Context>>::try_with::<tokio[1da8b235fed1da2d]::runtime::context::set_scheduler<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/local.rs:462:12
[INFO] [stdout]   48:     0x64d1451f8f9e - <std[fce30c26ee6459b]::thread::local::LocalKey<tokio[1da8b235fed1da2d]::runtime::context::Context>>::with::<tokio[1da8b235fed1da2d]::runtime::context::set_scheduler<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/local.rs:426:20
[INFO] [stdout]   49:     0x64d1451fc4bd - tokio[1da8b235fed1da2d]::runtime::context::set_scheduler::<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:17
[INFO] [stdout]   50:     0x64d145203960 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27
[INFO] [stdout]   51:     0x64d145203c56 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:24
[INFO] [stdout]   52:     0x64d145206a30 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   53:     0x64d1451fd1d3 - tokio[1da8b235fed1da2d]::runtime::context::runtime::enter_runtime::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   54:     0x64d145201ec1 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   55:     0x64d1451f8354 - <tokio[1da8b235fed1da2d]::runtime::runtime::Runtime>::block_on_inner::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:52
[INFO] [stdout]   56:     0x64d1451f851f - <tokio[1da8b235fed1da2d]::runtime::runtime::Runtime>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:18
[INFO] [stdout]   57:     0x64d145215700 - rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rate_limit_tests.rs:646:26
[INFO] [stdout]   58:     0x64d14520a287 - rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rate_limit_tests.rs:599:49
[INFO] [stdout]   59:     0x64d145208be6 - <rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   60:     0x64d1452333ab - <fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   61:     0x64d1452333ab - test[9653f4f1d2ca1489]::__rust_begin_short_backtrace::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:724:18
[INFO] [stdout]   62:     0x64d145240b9b - test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:747:74
[INFO] [stdout]   63:     0x64d145240b9b - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   64:     0x64d145240b9b - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>, core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   65:     0x64d145240b9b - std[fce30c26ee6459b]::panicking::catch_unwind::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   66:     0x64d145240b9b - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>, core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   67:     0x64d145240b9b - test[9653f4f1d2ca1489]::run_test_in_process
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:747:27
[INFO] [stdout]   68:     0x64d145240b9b - test[9653f4f1d2ca1489]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:668:43
[INFO] [stdout]   69:     0x64d14523a2b4 - test[9653f4f1d2ca1489]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:698:41
[INFO] [stdout]   70:     0x64d14523a2b4 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   71:     0x64d1452437a2 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   72:     0x64d1452437a2 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   73:     0x64d1452437a2 - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   74:     0x64d1452437a2 - std[fce30c26ee6459b]::panicking::catch_unwind::<(), core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   75:     0x64d1452437a2 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   76:     0x64d1452437a2 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   77:     0x64d1452437a2 - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   78:     0x64d1458e974f - <alloc[dad09f3a48280dba]::boxed::Box<dyn core[d17f6591d688f3bd]::ops::function::FnOnce<(), Output = ()> + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   79:     0x64d1458e974f - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   80:     0x79c76d123aa4 - <unknown>
[INFO] [stdout]   81:     0x79c76d1b0a64 - clone
[INFO] [stdout]   82:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] thread 'test_rate_limit_under_concurrent_load' (1100) panicked at tests/rate_limit_tests.rs:630:35:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(51), "called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Request, url: \"http://127.0.0.1:42133/mcp\", source: hyper_util::client::legacy::Error(SendRequest, hyper::Error(IncompleteMessage)) }", ...)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64d1458ea20a - std[fce30c26ee6459b]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64d1458ea20a - std[fce30c26ee6459b]::backtrace_rs::backtrace::trace_unsynchronized::<std[fce30c26ee6459b]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64d1458ea20a - std[fce30c26ee6459b]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64d1458ea20a - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64d14590135a - <core[d17f6591d688f3bd]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64d14590135a - core[d17f6591d688f3bd]::fmt::write
[INFO] [stdout]    6:     0x64d1458ef582 - std[fce30c26ee6459b]::io::default_write_fmt::<alloc[dad09f3a48280dba]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x64d1458ef582 - <alloc[dad09f3a48280dba]::vec::Vec<u8> as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x64d1458c6a6f - <std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64d1458c6a6f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64d1458e18f9 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64d1452400cc - <alloc[dad09f3a48280dba]::boxed::Box<dyn for<'a, 'b> core[d17f6591d688f3bd]::ops::function::Fn<(&'a std[fce30c26ee6459b]::panic::PanicHookInfo<'b>,), Output = ()> + core[d17f6591d688f3bd]::marker::Sync + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::Fn<(&std[fce30c26ee6459b]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x64d1452400cc - test[9653f4f1d2ca1489]::test_main_inner::<test[9653f4f1d2ca1489]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x64d1458e1b72 - <alloc[dad09f3a48280dba]::boxed::Box<dyn for<'a, 'b> core[d17f6591d688f3bd]::ops::function::Fn<(&'a std[fce30c26ee6459b]::panic::PanicHookInfo<'b>,), Output = ()> + core[d17f6591d688f3bd]::marker::Sync + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::Fn<(&std[fce30c26ee6459b]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x64d1458e1b72 - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64d1458c6b28 - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64d1458bbb79 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64d1458c79fd - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64d145901b4c - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64d145901892 - core[d17f6591d688f3bd]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64d14521011e - <core[d17f6591d688f3bd]::result::Result<http[630b88bb535a31f1]::status::StatusCode, tokio[1da8b235fed1da2d]::runtime::task::error::JoinError>>::unwrap
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x64d14521011e - rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rate_limit_tests.rs:630:35
[INFO] [stdout]   22:     0x64d1451f7da2 - <core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/future/future.rs:133:9
[INFO] [stdout]   23:     0x64d1451f7e1d - <core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>> as core[d17f6591d688f3bd]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x64d14520887d - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:70
[INFO] [stdout]   25:     0x64d14520877b - tokio[1da8b235fed1da2d]::task::coop::with_budget::<core[d17f6591d688f3bd]::task::poll::Poll<()>, <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   26:     0x64d14520877b - tokio[1da8b235fed1da2d]::task::coop::budget::<core[d17f6591d688f3bd]::task::poll::Poll<()>, <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   27:     0x64d14520877b - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:742:25
[INFO] [stdout]   28:     0x64d145202390 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Context>::enter::<core[d17f6591d688f3bd]::task::poll::Poll<()>, <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:432:19
[INFO] [stdout]   29:     0x64d145207b3d - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:741:44
[INFO] [stdout]   30:     0x64d145206e24 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:68
[INFO] [stdout]   31:     0x64d1451f8c8b - <tokio[1da8b235fed1da2d]::runtime::context::scoped::Scoped<tokio[1da8b235fed1da2d]::runtime::scheduler::Context>>::set::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}, (alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>)>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   32:     0x64d1451fdf99 - tokio[1da8b235fed1da2d]::runtime::context::set_scheduler::<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:38
[INFO] [stdout]   33:     0x64d1451f9412 - <std[fce30c26ee6459b]::thread::local::LocalKey<tokio[1da8b235fed1da2d]::runtime::context::Context>>::try_with::<tokio[1da8b235fed1da2d]::runtime::context::set_scheduler<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/local.rs:462:12
[INFO] [stdout]   34:     0x64d1451f8f9e - <std[fce30c26ee6459b]::thread::local::LocalKey<tokio[1da8b235fed1da2d]::runtime::context::Context>>::with::<tokio[1da8b235fed1da2d]::runtime::context::set_scheduler<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/local.rs:426:20
[INFO] [stdout]   35:     0x64d1451fc4bd - tokio[1da8b235fed1da2d]::runtime::context::set_scheduler::<(alloc[dad09f3a48280dba]::boxed::Box<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::Core>, core[d17f6591d688f3bd]::option::Option<()>), <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context.rs:176:17
[INFO] [stdout]   36:     0x64d145203960 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>::{closure#0}, core[d17f6591d688f3bd]::option::Option<()>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:829:27
[INFO] [stdout]   37:     0x64d145203c56 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:729:24
[INFO] [stdout]   38:     0x64d145206a30 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   39:     0x64d1451fd1d3 - tokio[1da8b235fed1da2d]::runtime::context::runtime::enter_runtime::<<tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   40:     0x64d145201ec1 - <tokio[1da8b235fed1da2d]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   41:     0x64d1451f8354 - <tokio[1da8b235fed1da2d]::runtime::runtime::Runtime>::block_on_inner::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:368:52
[INFO] [stdout]   42:     0x64d1451f851f - <tokio[1da8b235fed1da2d]::runtime::runtime::Runtime>::block_on::<core[d17f6591d688f3bd]::pin::Pin<&mut dyn core[d17f6591d688f3bd]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342:18
[INFO] [stdout]   43:     0x64d145215700 - rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rate_limit_tests.rs:646:26
[INFO] [stdout]   44:     0x64d14520a287 - rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rate_limit_tests.rs:599:49
[INFO] [stdout]   45:     0x64d145208be6 - <rate_limit_tests[87dbac96cc8fa52f]::test_rate_limit_under_concurrent_load::{closure#0} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   46:     0x64d1452333ab - <fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   47:     0x64d1452333ab - test[9653f4f1d2ca1489]::__rust_begin_short_backtrace::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:724:18
[INFO] [stdout]   48:     0x64d145240b9b - test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:747:74
[INFO] [stdout]   49:     0x64d145240b9b - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   50:     0x64d145240b9b - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>, core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   51:     0x64d145240b9b - std[fce30c26ee6459b]::panicking::catch_unwind::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   52:     0x64d145240b9b - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<test[9653f4f1d2ca1489]::run_test_in_process::{closure#0}>, core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   53:     0x64d145240b9b - test[9653f4f1d2ca1489]::run_test_in_process
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:747:27
[INFO] [stdout]   54:     0x64d145240b9b - test[9653f4f1d2ca1489]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:668:43
[INFO] [stdout]   55:     0x64d14523a2b4 - test[9653f4f1d2ca1489]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/test/src/lib.rs:698:41
[INFO] [stdout]   56:     0x64d14523a2b4 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   57:     0x64d1452437a2 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   58:     0x64d1452437a2 - <core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   59:     0x64d1452437a2 - std[fce30c26ee6459b]::panicking::catch_unwind::do_call::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:581:40
[INFO] [stdout]   60:     0x64d1452437a2 - std[fce30c26ee6459b]::panicking::catch_unwind::<(), core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panicking.rs:544:19
[INFO] [stdout]   61:     0x64d1452437a2 - std[fce30c26ee6459b]::panic::catch_unwind::<core[d17f6591d688f3bd]::panic::unwind_safe::AssertUnwindSafe<std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/panic.rs:359:14
[INFO] [stdout]   62:     0x64d1452437a2 - std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   63:     0x64d1452437a2 - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   64:     0x64d1458e974f - <alloc[dad09f3a48280dba]::boxed::Box<dyn core[d17f6591d688f3bd]::ops::function::FnOnce<(), Output = ()> + core[d17f6591d688f3bd]::marker::Send> as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   65:     0x64d1458e974f - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   66:     0x79c76d123aa4 - <unknown>
[INFO] [stdout]   67:     0x79c76d1b0a64 - clone
[INFO] [stdout]   68:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_rate_limit_under_concurrent_load
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 11 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.27s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test rate_limit_tests`
[INFO] running `Command { std: "docker" "inspect" "d28fa647af0d262e8106b0d96295dfe6b3710d1adbb5c7cf2c1dcdf9a7fe126b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d28fa647af0d262e8106b0d96295dfe6b3710d1adbb5c7cf2c1dcdf9a7fe126b", kill_on_drop: false }`
[INFO] [stdout] d28fa647af0d262e8106b0d96295dfe6b3710d1adbb5c7cf2c1dcdf9a7fe126b
